1. Field of the Invention
This application is a continuation of U.S. application Ser. No. 11/669,775, filed Jan. 31, 2007, now U.S. Pat. No. 7,668,162. The present invention relates to networks, and more particularly, to compressing and decompressing network data.
2. Background of the Invention
Computer networks are commonly used. Storage area networks (“SANs”) are a type of computer network used to store and access data. A SAN maintains a sub-network of shared storage devices, for example, disks and tape drives. A computer system (may also be referred to as a “host”) can access data stored in the SAN.
Typical SAN architecture makes storage devices available to all servers that are connected using a computer network, for example, a local area network or a wide area network. The term server in this context means any computing system or device coupled to a network that manages network resources. For example, a file server is a computer and storage device dedicated to storing files. Any user on the network can store files on the server.
Conventional compression algorithms have been designed to operate on big data chunks (blocks) and are not efficient for data packets or frames (for example, Fibre Channel frames). In conventional systems, a compressor is provided with input buffers to handle compression of big data chunks. Typically, the compressor clears compression history and writes data to output buffers. A list of recurring tokens is cached, and the token cache may be referred to as compression history. The compressor computes checksum over the output. The output data is then transmitted.
In high data rate networks (for example, 10 Gb) it is undesirable to aggregate frames in a buffer and then compress the aggregated frames because that will increase latency and reduce overall network throughput. Therefore, there is a need for efficient compression and decompression systems and methods for compressing and decompressing network information at a packet (or frame) level.